(window.webpackJsonp = window.webpackJsonp || []).push([
	[8], {
		LB8R: function(e, t, n) {
			"use strict";
			var i;

			function _typeof(e) {
				return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ?
					function _typeof(e) {
						return typeof e
					} : function _typeof(e) {
						return e && "function" == typeof Symbol && e.constructor === Symbol && e !==
							Symbol.prototype ? "symbol" : typeof e
					})(e)
			}
			n("rE2o"), n("ioFf"), n("rGqo"), n("KKXr"), n("OG14"), n("f3/d"), n("pIFo"), n("SRfc"), n(
					"a1Th"), n("h7Nl"),
				function(u, v) {
					function c(e) {
						return function(t) {
							return {}.toString.call(t) == "[object " + e + "]"
						}
					}

					function d() {
						return S++
					}

					function e(e) {
						return e.match(A)[0]
					}

					function l(t, n) {
						var i, r = t.charAt(0);
						if (U.test(t)) i = t;
						else if ("." === r) i = function f(e) {
							for (e = e.replace(D, "/"); e.match(C);) e = e.replace(C, "/");
							return e.replace(O, "$1/")
						}((n ? e(n) : y.cwd) + t);
						else if ("/" === r) {
							var o = y.cwd.match(H);
							i = o ? o[0] + t.substring(1) : t
						} else i = y.base + t;
						return 0 === i.indexOf("//") && (i = ("https:" == location.protocol ? "https:" :
							"http:") + i), i
					}

					function p(e, t, n, i) {
						function f() {
							e.onload = e.onerror = e.onreadystatechange = null, n || y.debug || P
								.removeChild(e), e = null, t()
						}
						var r = "onload" in e;
						return !n || !J && r ? (r ? (e.onload = f, e.onerror = function() {
							T("error", {
								uri: i,
								node: e
							}), f()
						}) : e.onreadystatechange = function() {
							/loaded|complete/.test(e.readyState) && f()
						}, v) : (setTimeout(function() {
							q(e, t)
						}, 1), v)
					}

					function q(t, n) {
						var i, r = t.sheet;
						if (J) r && (i = !0);
						else if (r) try {
							r.cssRules && (i = !0)
						} catch (e) {
							"NS_ERROR_DOM_SECURITY_ERR" === e.name && (i = !0)
						}
						setTimeout(function() {
							i ? n() : q(t, n)
						}, 20)
					}

					function t(e, t) {
						this.uri = e, this.dependencies = t || [], this.exports = null, this.status = 0,
							this._waitings = {}, this._remain = 0
					}
					if (!u.seajs) {
						var b = u.seajs = {
								version: "2.2.0"
							},
							y = b.data = {},
							w = c("Object"),
							E = c("String"),
							x = Array.isArray || c("Array"),
							_ = c("Function"),
							S = 0,
							I = y.events = {};
						b.on = function(e, t) {
							return (I[e] || (I[e] = [])).push(t), b
						}, b.off = function(e, t) {
							if (!e && !t) return I = y.events = {}, b;
							var n = I[e];
							if (n)
								if (t)
									for (var i = n.length - 1; i >= 0; i--) n[i] === t && n.splice(i,
									1);
								else delete I[e];
							return b
						};
						var T = b.emit = function(e, t) {
								var n, i = I[e];
								if (i)
									for (i = i.slice(); n = i.shift();) n(t);
								return b
							},
							A = /[^?#]*\//,
							D = /\/\.\//g,
							C = /\/[^/]+\/\.\.\//,
							O = /([^:/])\/\//g,
							L = /^([^/:]+)(\/.+)$/,
							F = /{([^{]+)}/g,
							U = /^\/\/.|:\//,
							H = /^.*?\/\/.*?\//,
							N = document,
							R = e(N.URL),
							$ = N.scripts,
							G = e(function n(e) {
								return e.hasAttribute ? e.src : e.getAttribute("src", 4)
							}(N.getElementById("seajsnode") || $[$.length - 1]) || R);
						b.resolve = function m(e, t) {
							if (!e) return "";
							var n = l(e = function g(e) {
								var t = e.length - 1,
									n = e.charAt(t);
								return "#" === n ? e.substring(0, t) : ".js" === e.substring(t -
									2) || e.indexOf("?") > 0 || ".css" === e.substring(t -
									3) || "/" === n ? e : e + ".js"
							}(e = function j(e) {
								var t = y.vars;
								return t && e.indexOf("{") > -1 && (e = e.replace(F,
									function(e, n) {
										return E(t[n]) ? t[n] : e
									})), e
							}(e = function i(e) {
								var t, n = y.paths;
								return n && (t = e.match(L)) && E(n[t[1]]) && (e = n[t[
									1]] + t[2]), e
							}(e = function h(e) {
								var t = y.alias;
								return t && E(t[e]) ? t[e] : e
							}(e)))), t);
							return function k(e) {
								var t = y.map,
									n = e;
								if (t)
									for (var i = 0, r = t.length; r > i; i++) {
										var o = t[i];
										if ((n = _(o) ? o(e) || e : e.replace(o[0], o[1])) !== e)
											break
									}
								return n
							}(n)
						};
						var V, M, P = N.getElementsByTagName("head")[0] || N.documentElement,
							K = P.getElementsByTagName("base")[0],
							W = /\.css(?:\?|$)/i,
							J = +navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/, "$1") < 536;
						b.request = function o(e, t, n) {
							var i = W.test(e),
								r = N.createElement(i ? "link" : "script");
							if (n) {
								var o = _(n) ? n(e) : n;
								o && (r.charset = o)
							}
							p(r, t, i, e), i ? (r.rel = "stylesheet", r.href = e) : (r.async = !0, r
									.src = e), V = r, K ? P.insertBefore(r, K) : P.appendChild(r), V =
								null
						};
						var X, Y =
							/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g,
							B = /\\\\/g,
							z = b.cache = {},
							Q = {},
							Z = {},
							ee = {},
							te = t.STATUS = {
								FETCHING: 1,
								SAVED: 2,
								LOADING: 3,
								LOADED: 4,
								EXECUTING: 5,
								EXECUTED: 6
							};
						t.prototype.resolve = function() {
								for (var e = this.dependencies, n = [], i = 0, r = e.length; r > i; i++) n[
									i] = t.resolve(e[i], this.uri);
								return n
							}, t.prototype.load = function() {
								var e = this;
								if (!(e.status >= te.LOADING)) {
									e.status = te.LOADING;
									var n = e.resolve();
									T("load", n);
									for (var i, r = e._remain = n.length, o = 0; r > o; o++)(i = t.get(n[
										o])).status < te.LOADED ? i._waitings[e.uri] = (i._waitings[e
										.uri] || 0) + 1 : e._remain--;
									if (0 === e._remain) return e.onload(), v;
									var a = {};
									for (o = 0; r > o; o++)(i = z[n[o]]).status < te.FETCHING ? i.fetch(a) :
										i.status === te.SAVED && i.load();
									for (var s in a) a.hasOwnProperty(s) && a[s]()
								}
							}, t.prototype.onload = function() {
								var e = this;
								e.status = te.LOADED, e.callback && e.callback();
								var t, n, i = e._waitings;
								for (t in i) i.hasOwnProperty(t) && ((n = z[t])._remain -= i[t], 0 === n
									._remain && n.onload());
								delete e._waitings, delete e._remain
							}, t.prototype.fetch = function(e) {
								function c() {
									b.request(r.requestUri, r.onRequest, r.charset)
								}
								var n = this,
									i = n.uri;
								n.status = te.FETCHING;
								var r = {
									uri: i
								};
								T("fetch", r);
								var o = r.requestUri || i;
								return !o || Z[o] ? (n.load(), v) : Q[o] ? (ee[o].push(n), v) : (Q[o] = !0,
									ee[o] = [n], T("request", r = {
										uri: i,
										requestUri: o,
										onRequest: function d() {
											delete Q[o], Z[o] = !0, X && (t.save(i, X), X =
												null);
											var e, n = ee[o];
											for (delete ee[o]; e = n.shift();) e.load()
										},
										charset: y.charset
									}), r.requested || (e ? e[r.requestUri] = c : c()), v)
							}, t.prototype.exec = function() {
								function a(e) {
									return t.get(a.resolve(e)).exec()
								}
								var e = this;
								if (e.status >= te.EXECUTING) return e.exports;
								e.status = te.EXECUTING;
								var n = e.uri;
								a.resolve = function(e) {
									return t.resolve(e, n)
								}, a.async = function(e, i) {
									return t.use(e, i, n + "_async_" + d()), a
								};
								var i = e.factory,
									r = _(i) ? i(a, e.exports = {}, e) : i;
								return r === v && (r = e.exports), delete e.factory, e.exports = r, e
									.status = te.EXECUTED, T("exec", e), r
							}, t.resolve = function(e, t) {
								var n = {
									id: e,
									refUri: t
								};
								return T("resolve", n), n.uri || b.resolve(n.id, t)
							}, t.define = function(e, n, i) {
								var o = arguments.length;
								1 === o ? (i = e, e = v) : 2 === o && (i = n, x(e) ? (n = e, e = v) : n =
									v), !x(n) && _(i) && (n = function s(e) {
										var t = [];
										return e.replace(B, "").replace(Y, function(e, n, i) {
											i && t.push(i)
										}), t
									}("" + i));
								var a = {
									id: e,
									uri: t.resolve(e),
									deps: n,
									factory: i
								};
								if (!a.uri && N.attachEvent) {
									var c = function r() {
										if (V) return V;
										if (M && "interactive" === M.readyState) return M;
										for (var e = P.getElementsByTagName("script"), t = e.length -
											1; t >= 0; t--) {
											var n = e[t];
											if ("interactive" === n.readyState) return M = n
										}
									}();
									c && (a.uri = c.src)
								}
								T("define", a), a.uri ? t.save(a.uri, a) : X = a
							}, t.save = function(e, n) {
								var i = t.get(e);
								i.status < te.SAVED && (i.id = n.id || e, i.dependencies = n.deps || [], i
									.factory = n.factory, i.status = te.SAVED)
							}, t.get = function(e, n) {
								return z[e] || (z[e] = new t(e, n))
							}, t.use = function(e, n, i) {
								var r = t.get(i, x(e) ? e : [e]);
								r.callback = function() {
									for (var e = [], t = r.resolve(), i = 0, o = t.length; o > i; i++)
										e[i] = z[t[i]].exec();
									n && n.apply(u, e), delete r.callback
								}, r.load()
							}, t.preload = function(e) {
								var n = y.preload,
									i = n.length;
								i ? t.use(n, function() {
									n.splice(0, i), t.preload(e)
								}, y.cwd + "_preload_" + d()) : e()
							}, b.use = function(e, n) {
								return t.preload(function() {
									t.use(e, n, y.cwd + "_use_" + d())
								}), b
							}, t.define.cmd = {}, u.define = t.define, b.Module = t, y.fetchedList = Z, y
							.cid = d, b.require = function(e) {
								var n = t.get(t.resolve(e));
								return n.status < te.EXECUTING && n.exec(), n.exports
							};
						y.base = (G.match(/^(.+?\/)(\?\?)?(seajs\/)+/) || ["", G])[1], y.dir = G, y.cwd = R,
							y.charset = "utf-8", y.preload = function() {
								var e = [],
									t = location.search.replace(/(seajs-\w+)(&|$)/g, "$1=1$2");
								return (t += " " + N.cookie).replace(/(seajs-\w+)=1/g, function(t, n) {
									e.push(n)
								}), e
							}(), b.config = function(e) {
								for (var t in e) {
									var n = e[t],
										i = y[t];
									if (i && w(i))
										for (var r in n) i[r] = n[r];
									else x(i) ? n = i.concat(n) : "base" === t && ("/" !== n.slice(-1) && (
										n += "/"), n = l(n)), y[t] = n
								}
								return T("config", e), b
							}
					}
				}(window),
				function() {
					function c(t) {
						return function e(t) {
							for (var n = [], i = t.__KEYS, r = 0, o = i.length; o > r; r++) {
								for (var a = i[r], s = a, c = t[a], u = c.__KEYS; 1 === u.length;) s +=
									"/" + u[0], c = c[u[0]], u = c.__KEYS;
								u.length && n.push([s.replace("__", "://"), f(c)])
							}
							return n
						}(function d(e) {
							for (var t = {
									__KEYS: []
								}, n = 0, i = e.length; i > n; n++)
								for (var r = e[n].replace("://", "__").split("/"), o = t, a = 0, s =
										r.length; s > a; a++) {
									var c = r[a];
									o[c] || (o[c] = {
										__KEYS: []
									}, o.__KEYS.push(c)), o = o[c]
								}
							return t
						}(t))
					}

					function f(e) {
						for (var t = [], n = e.__KEYS, i = 0, r = n.length; r > i; i++) {
							var o = n[i],
								a = f(e[o]),
								s = a.length;
							if (s)
								for (var c = 0; s > c; c++) t.push(o + "/" + a[c]);
							else t.push(o)
						}
						return t
					}

					function g(e) {
						for (var t = 0, n = e.length; n > t; t++)
							for (var i = e[t], r = i[0] + "/", o = j(i[1]), a = 0, c = o.length; c > a; a++)
								h(r, o[a]);
						return s
					}

					function h(e, t) {
						var n = e + u[0] + t.join(u[1]),
							r = n.length > p;
						if (t.length > 1 && r) {
							var o = function i(e, t) {
								for (var n = u[1], i = e[0], r = 1, o = e.length; o > r; r++)
									if ((i += n + e[r]).length > t) return [e.splice(0, r), e]
							}(t, p - (e + u[0]).length);
							h(e, o[0]), h(e, o[1])
						} else {
							if (r) throw new Error("The combo url is too long: " + n);
							for (var a = 0, c = t.length; c > a; a++) s[e + t[a]] = n
						}
					}

					function j(e) {
						for (var t = [], n = {}, i = 0, r = e.length; r > i; i++) {
							var o = e[i],
								a = k(o);
							a && (n[a] || (n[a] = [])).push(o)
						}
						for (var s in n) n.hasOwnProperty(s) && t.push(n[s]);
						return t
					}

					function k(e) {
						var t = e.lastIndexOf(".");
						return t >= 0 ? e.substring(t) : ""
					}

					function l(e) {
						return t ? t.test ? t.test(e) : t(e) : void 0
					}

					function m(e) {
						var t = o.comboSyntax || ["??", ","],
							n = t[0],
							i = t[1];
						return n && e.indexOf(n) > 0 || i && e.indexOf(i) > 0
					}
					var t, n = seajs.Module,
						r = n.STATUS.FETCHING,
						o = seajs.data,
						s = o.comboHash = {},
						u = ["??", ","],
						p = 2e3;
					if (seajs.on("load", function a(e) {
							var i = e.length;
							if (!(i < 2)) {
								o.comboSyntax && (u = o.comboSyntax), o.comboMaxLength && (p = o
									.comboMaxLength), t = o.comboExcludes;
								for (var a = [], f = 0; i > f; f++) {
									var d = e[f];
									s[d] || n.get(d).status < r && !l(d) && !m(d) && a.push(d)
								}
								a.length > 1 && g(c(a))
							}
						}), seajs.on("fetch", function b(e) {
							e.requestUri = s[e.uri] || e.uri
						}), o.test) {
						var v = seajs.test || (seajs.test = {});
						v.uris2paths = c, v.paths2hash = g
					}
					e.exports = {}
				}(),
				function(e, t) {
					! function() {
						var e = navigator.userAgent.toLowerCase();
						"undefined" == typeof t.browser ? t.browser = {
							version: (e.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1],
							safari: /webkit/.test(e),
							opera: /opera/.test(e),
							msie: /msie/.test(e) && !/opera/.test(e) || /trident/.test(e),
							mozilla: /mozilla/.test(e) && !/(compatible|webkit)/.test(e)
						} : (t.browser.webkit || (t.browser.webkit = /webkit/.test(e)), t.browser
							.mozilla && (t.browser.msie = /trident/.test(e))), t.extend(t.browser,
							function() {
								var e = navigator.userAgent;
								return navigator.appVersion, {
									mobile: !!e.match(/AppleWebKit.*Mobile.*/),
									ios: !!e.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
									android: e.indexOf("Android") > -1 || e.indexOf("Linux") > -1,
									iPhone: e.indexOf("iPhone") > -1,
									iPad: e.indexOf("iPad") > -1,
									webApp: -1 == e.indexOf("Safari")
								}
							}()), t.browser.isMobile = function(e) {
							return function() {
								return e
							}
						}(t.browser.mobile || t.browser.ios || t.browser.android), t.each([6, 7, 8, 9,
							10, 11, 12
						], function(e, n) {
							t.browser["isIE" + n] = function(e) {
								return function() {
									return e
								}
							}(!(!t.browser.msie || t.browser.version != n))
						})
					}(), t.page = t.extend(t.page || {}, {
						document: "BackCompat" == document.compatMode ? document.body : document
							.documentElement,
						doc: function doc() {
							return this.document
						},
						clientWidth: function clientWidth() {
							return this.document.clientWidth
						},
						clientHeight: function clientHeight() {
							return this.document.clientHeight
						},
						docWidth: function docWidth() {
							return Math.max(this.document.clientWidth, this.document
								.scrollWidth)
						},
						docHeight: function docHeight() {
							return Math.max(this.document.clientHeight, this.document
								.scrollHeight)
						}
					}), "undefined" == typeof t.contains && (t.contains = function(e, t) {
						return e.compareDocumentPosition ? !!(16 & e.compareDocumentPosition(t)) :
							e !== t && e.contains(t)
					}), t.T = {
						throttle: function throttle(e, n, i) {
							var r = -1;
							return n < 1 ? function() {
								t.T.call(null, i, -1);
								try {
									e.apply(this, arguments)
								} catch (n) {
									console.error(n)
								}
							} : function() {
								var o = arguments,
									a = this;
								clearTimeout(r), r = setTimeout(function() {
									clearTimeout(r);
									try {
										e.apply(a, o)
									} catch (t) {
										console.error(t)
									}
								}, n), t.T.call(null, i, r)
							}
						},
						call: function call(e, n) {
							var i = 1,
								r = this,
								o = e;
							t.isFunction(e) || (r = e, o = n, i = 2), t.isFunction(o) && o.apply(r,
								[].slice.call(arguments, i))
						},
						apply: function apply(e, n, i) {
							var r = e,
								o = n,
								a = i;
							t.isFunction(e) && (r = this, o = e, a = n), t.isFunction(o) && o.apply(
								r, [].concat(a))
						},
						tpl: function() {
							var e = {};
							return function(t, n, i) {
								var r = "string" == typeof i ? i : t,
									o = "boolean" != typeof i || i,
									a = e[r] || new Function("obj",
										"var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" +
										t.replace(/[\r\t\n]/g, " ").split("<%").join("\t")
										.replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(
											/\t=(.*?)%>/g, "',$1,'").split("\t").join("');")
										.split("%>").join("p.push('").split("\r").join("\\'") +
										"');}return p.join('');");
								return o && (e[r] = a), n ? a(n) : a
							}
						}(),
						isBlank: function isBlank(e) {
							var n = arguments;
							if (n.length > 1) {
								for (var i = 0, r = n.length; r > i; i++)
									if (arguments.callee(n[i])) return !0;
								return !1
							}
							return "undefined" === String(e) || "null" === String(e) || "string" ==
								typeof e && "" === t.trim(e) || t.isEmptyObject(e)
						},
						search: function() {
							var e = {},
								n = "_@separating@_";
							return t.each(location.search.substring(1).split("&"), function(i, r) {
									if ((r = r.replace(/\%20/g, "").replace("=", n).split(n))[
										0])
										if ("isdebug" == r[0] && r[1]) {
											var o = {};
											t.each(r[1].replace(/^\-/, "").split("-"), function(
												e, t) {
												t && (o[t] = !0)
											}), e[r[0]] = o
										} else e[r[0]] = r[1]
								}),
								function(n, i) {
									if (!n) return e;
									if (!t.isPlainObject(n) && null == i) return e[n];
									if ("isdebug" == n) return !(!e[n] || !e[n][i]);
									var r = arguments.callee;
									if (t.isPlainObject(n)) {
										var o = !0,
											a = 0 == i;
										return t.each(n, function(e, t) {
											var n = r(e, t);
											return a && n ? (o = !0, !1) : a || n ? void 0 :
												o = !1
										}), o
									}
									return !(!e[n] || e[n] != i)
								}
						}(),
						getAllUI: function getAllUI(e) {
							var n = [];
							return t.each(JDFUI.classes(), function(t) {
								n = n.concat(JDFUI[t].get(e))
							}), n
						}
					}, t.tpl = t.T.tpl, t.T.defer = t.T.throttle
				}(window, jQuery),
				function(e) {
					if (e.browser.isMobile()) {
						var t, n, r = function h() {
								n = null, a.last && (a.el.trigger("longTap"), a = {})
							},
							o = function i() {
								n && clearTimeout(n), n = null
							},
							a = {};
						e(document).ready(function() {
							var i, s;
							e(document.body).bind("touchstart", function(o) {
								i = Date.now(), s = i - (a.last || i), a.el = e(function d(
										e) {
										return "tagName" in e ? e : e.parentNode
									}(o.target)), t && clearTimeout(t), a.x1 = o.pageX, a
									.y1 = o.pageY, s > 0 && s <= 250 && (a.isDoubleTap = !
									0), a.last = i, n = setTimeout(r, 750)
							}).bind("touchmove", function(e) {
								o(), a.x2 = e.pageX, a.y2 = e.pageY
							}).bind("touchend", function() {
								o(), a.isDoubleTap ? (a.el.trigger("doubleTap"), a = {}) : a
									.x2 && Math.abs(a.x1 - a.x2) > 30 || a.y2 && Math.abs(a
										.y1 - a.y2) > 30 ? (a.el.trigger("swipe") && a.el
										.trigger("swipe" + function e(t, n, i, r) {
											var e = Math.abs(t - n);
											return e >= Math.abs(i - r) ? t - n > 0 ?
												"Left" : "Right" : i - r > 0 ? "Up" :
												"Down"
										}(a.x1, a.x2, a.y1, a.y2)), a = {}) : "last" in a &&
									(a.el.trigger("tap"), t = setTimeout(function() {
										t = null, a.el.trigger("singleTap"), a = {}
									}, 250))
							}).bind("touchcancel", function() {
								t && clearTimeout(t), n && clearTimeout(n), n = t = null,
									a = {}
							})
						}), ["swipe", "swipeLeft", "swipeRight", "swipeUp", "swipeDown", "doubleTap",
							"tap", "singleTap", "longTap"
						].forEach(function(t) {
							e.fn[t] = function(e) {
								return this.bind(t, e)
							}
						})
					}
				}($),
				function(n, r, o) {
					if (!r) return !1;
					var a = n.JDFUI;
					if (a && "2.0.0" == a.version && "JDF" == a.author || (a = function() {
							function d() {}
							"undefined" == typeof console && (n.console = {
								info: d,
								log: d,
								warn: d,
								error: d
							});
							var t = -1,
								i = {
									id: -1,
									uuid: null,
									guid: -1,
									name: null,
									version: "2.0.0",
									el: null,
									selector: null,
									eventNamespace: null,
									options: {
										isAutoInit: !0,
										hasCssLink: !1,
										baseVersion: "1.0.0",
										cssLinkVersion: "1.0.0"
									},
									constructor: function constructor() {},
									init: d,
									cache: function cache() {},
									show: function show() {
										this.el.show()
									},
									hide: function hide() {
										this.el.hide()
									}
								},
								a = {
									isAdvanced: !0,
									initCount: 0,
									_: {},
									event: {},
									isAlive: !0,
									options: {
										SSCode: 0,
										SSKeys: null,
										hasCssLink: !1,
										onReady: d,
										onDestroy: d
									},
									on: function on() {},
									one: function one() {},
									off: function off() {},
									trigger: function trigger() {},
									eventHandler: function eventHandler() {},
									delegate: function delegate() {},
									call: function call(e) {
										if (r.isFunction(e)) {
											var t = [].slice.call(arguments, 1);
											e.apply(this, t)
										}
									},
									unbindEvent: d,
									loadAllEls: d,
									destroy: d
								},
								s = ["id", "guid", "name", "eventNamespace", "selector", "cache"],
								c =
								"abort,blur,change,click,dblclick,drag,dragend,dragenter,dragleave,dragover,dragstart,drop,durationchange,focus,input,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseout,mouseover,mouseup,mousewheel,scroll,select,submit,wheel"
								.split(","),
								u = /\b(\w)/g,
								l = /El$/,
								f = /Evt$/,
								p = /\btimer\b|Timer$/,
								h = /\binterval\b|Interval$/,
								v = /^on[A-Z]/,
								g = /\w\#\w/,
								m = /^(author|version|define|all|classes|helper|loadRootUI|gc)$/,
								b = /\w+#$/,
								y = /#\w*/,
								w = "data-options",
								E = "data-opt-",
								j = "ui-on-event",
								x = /^(el|selector|hover)$/,
								A = /^on|callback|complete$/,
								D = /\s+/g,
								C = /^static_/,
								k = /^(create|get|all|forEach)$/,
								F = {},
								q = {},
								B = {
									create: function create(e, n, i) {
										var o = q[n],
											a = r(e);
										if (!o) return null;
										var s = V(o.options || {}, a),
											c = r.extend(!0, {}, o, {
												options: s
											}, {
												options: i,
												guid: t + 1,
												id: o.id + 1
											});
										c.el = a, c.selector = a.selector = e.selector, c
											.eventNamespace = ".ui-" + n + "-" + c.id;
										var u = c.options;
										if ("1.0.0" == u.baseVersion) ! function O(e) {
											e.cache("options", r.extend({}, e.options, !0)), r
												.each(e.options, function(t, n) {
													A.test(t.toLowerCase()) && r.isFunction(
														e.options[t]) && (e.options[t] =
														function(e) {
															var t = [e],
																n = function d() {
																	var e = this,
																		d = arguments;
																	r.each(t, function(
																		t, n) {
																		n.apply(e,
																			d
																			)
																	})
																};
															return n.callbacks = t, n
																.add = function(e) {
																	n.callbacks.push(e)
																}, n
														}(n))
												})
										}(c);
										else {
											var l = function M(e, t, n) {
												var i = n.SSCode;
												if (i > 0) {
													var o = z[e].get(t);
													if (o.length) {
														if (n.SSKeys) {
															var a = L(n, n.SSKeys),
																s = [];
															if (a && r.each(o, function(e, t) {
																	L(t.cache("options"), n
																			.SSKeys) == a &&
																		s.push(t)
																}), !s.length) return !0;
															o = s
														}
														switch (i % 2 != 0 && console.warn(t, t
															.selector + " has been bind " +
															e + " component!", o), i) {
															case 1:
																break;
															case 2:
																return o[0];
															case 3:
																return !1
														}
													}
												}
												return !0
											}(n, a, u);
											if (!l) return !1;
											if (!0 !== l) return l.selector = e.selector, l.init(i),
												l.cache("origin_options", r.extend(c.cache(
													"origin_options"), i)), l;
											H.createClass(c), c.cache("origin_options", i),
												function N(e) {
													e.cache("options", r.extend({}, e.options, !0)),
														function Q(e) {
															r.each(e.options, function(t, n) {
																R(e, t, n)
															})
														}(e),
														function T(e) {
															var t = {};
															r.each(c, function(n, i) {
																t[i] = S(e, i)
															}), e.event = t
														}(e),
														function U(e) {
															var t = e.init;
															e.init = I("init", function() {
																var n = {};
																return e.unbindEvent(), e
																	.initCount++, arguments
																	.length &&
																function P() {
																		var e, t = this,
																			n = t.options,
																			i = t.cache(
																				"options"),
																			o = {};
																		r.each([].slice
																				.call(
																					arguments,
																					0),
																				function(a,
																					s) {
																					e ? (n[e] =
																							o[
																								e] =
																							i[
																								e] =
																							s,
																							e =
																							null
																							) :
																						r
																						.isPlainObject(
																							s
																							) ?
																						(o = s,
																							r
																							.extend(
																								i,
																								o
																								),
																							r
																							.extend(
																								t
																								.options,
																								o
																								)
																							) :
																						e =
																						String(
																							s
																							)
																						.replace(
																							D,
																							""
																							)
																				}), t.cache(
																				"options", i
																				), t.cache(
																				"origin_options",
																				r.extend(t
																					.cache(
																						"origin_options"
																						), o
																					)), r
																			.each(o,
																				function(e,
																					n) {
																					R(t, e,
																						n)
																				})
																	}.apply(e, arguments), e
																	.loadAllEls(),
																	function $(e) {
																		r.T.search(
																				"isdebug", 1
																				) && z
																			.helper(
																				function() {
																					this &&
																						r.T
																						.call(
																							this
																							.test,
																							e
																							)
																				})
																	}(e), r.isFunction(t) &&
																	!1 === (n = t.apply(e,
																		arguments)) ?
																	void 0 : (r.T.call(e, e
																		.options
																		.onReady, n), e)
															})
														}(e)
												}(c)
										}
										return F[n].push(c), W(n), q[n].id++, t++,
											function K(e) {
												var t = e.options;
												if (t.hasCssLink && "undefined" != typeof seajs && t
													.cssLinkVersion && t.baseVersion) seajs.use((
														"https:" == document.location.protocol ?
														"https:" : "http:") +
													"//misc.360buyimg.com/jdf/" + t
													.baseVersion + "/ui/" + e.name + "/" + t
													.cssLinkVersion + "/" + e.name + ".css",
													function() {
														t.isAutoInit && e.init()
													});
												else if (t.isAutoInit) {
													var n = e.init();
													!1 !== n || e.isAdvanced || J(e)
												}
											}(c), c
									},
									register: function register(e, t) {
										var n = q[t.uuid];
										if (n) return !1;
										var o = this.getClasses(t.extend),
											s = {};
										return t.isAdvanced && (s = a), o.length ? n = r.extend
											.apply(r, [!0, {}, i, s].concat(o).concat([t])) : (_(t
												.uuid, t), n = r.extend(!0, {}, i, s, t)), q[t
											.uuid] = n, n.name = e, F[t.uuid] = [], !0
									},
									getClasses: function getClasses(e) {
										var t = [],
											n = null,
											i = [];
										return e ? (r.isArray(e) ? i = e : i.push(e), r.each(i,
											function(e, i) {
												if (!(n = q[i])) throw new Error(i +
													" is not exist!");
												t.push(n)
											}), t) : t
									}
								},
								z = {
									author: "JDF",
									version: "2.0.0",
									define: I("define", function(e, t) {
										if (!e || !t || "string" != typeof e || m.test(e) || !r
											.isPlainObject(t)) return !1;
										t.options = t.options || {}, t.options.baseVersion = t
											.options.baseVersion || "1.0.0";
										var n = {};
										return r.each(t, function(e, i) {
												if (C.test(e)) {
													var r = e.substring(7);
													t[r] && console.warn('static method "' +
															e + '" will be overwrite "' +
															r + '" method! '), t[r] = n[r] =
														i, delete t[e]
												}
											}), b.test(e) ? (e = e.replace(y, ""), t
												.isAdvanced = !0, t.options.baseVersion =
												"2.0.0") : t.isAdvanced = !1, t.uuid = e + (t
												.isAdvanced ? 2 : 1), z[t.uuid] ? z[t.uuid] : !!
											B.register(e, t) && (z[t.uuid] = function Z(t, n) {
													var i = t.uuid;

													function e(e) {
														return e ? (e.el instanceof r || (e.el =
															r(e.el ? e.el : "body")), z[
															i].create(e.el, e)) : t
													}
													return G.createClass(i, e), r.each(t,
														function(t, n) {
															r.isFunction(n) && !k.test(t) &&
																(e.all[t] = function() {
																	var n = arguments;
																	return e.forEach(
																		function() {
																			this[t]
																				.apply(
																					this,
																					n
																					)
																		}), e.all
																})
														}), r.each(n || [], function(t, n) {
														e[t] = n
													}), e
												}(q[t.uuid], n), z[e] || (z[e] = z[t.uuid]),
												function X(e) {
													return r.fn[e] ? (r.T.search("isdebug",
														1) && console.warn('$.fn["' + e +
															'"] is exist!'), !1) : void(r
														.fn[e] = function(t, n) {
															return z[e].create(this, t, n)
														})
												}(e),
												function Y(e) {
													var t = "get" + e.replace(u, function(e) {
														return e.toUpperCase()
													});
													return r.fn[t] ? (r.T.search("isdebug",
														1) && console.warn("$.fn[" + t +
															"] is exist!"), !1) : void(r.fn[
														t] = function() {
														return z[e].get(this)
													})
												}(e), z[t.uuid])
									}),
									all: I("all", function() {
										return r.extend(!0, {}, F)
									}),
									classes: I("classes", function() {
										return r.extend(!0, {}, q)
									}),
									helper: I("helper", function(e) {
										if ("object" !== ("undefined" == typeof seajs ?
												"undefined" : _typeof(seajs))) return console
											.warn("require seajs.js!"), !1;
										var t = ["jdf/2.0.0/ui/helper/1.0.0/helper.js"];
										r.each(q, function(e, n) {
											n.isAdvanced && t.push("jdf/" + n.options
												.baseVersion + "/ui/" + n.name +
												"/" + n.options.cssLinkVersion +
												"/helper.js")
										}), t.length && seajs.use(t, function(t) {
											r.T.call(t, e, F)
										})
									}),
									loadRootUI: I("loadRootUI", function() {
										var e = "data-root-ui",
											t = "data-root-ui-url",
											n = "data-root-install",
											i = [],
											o = r("[" + e + "][" + n + '!="done"]');
										return o.each(function() {
											var n = r(this),
												o = n.attr(e),
												a = n.attr(t);
											return !(a || !m.test(o)) || void i.push(
												a || "jdf/2.0.0/ui/" + o +
												"/1.0.0/" + o + ".js")
										}), !!i.length && void seajs.use(i, function() {
											o.each(function() {
												var i = r(this),
													o = i.attr(e),
													a = z[o + "2"];
												if (!a || !i.attr(t) && m.test(
														o)) return !0;
												var s = a({
													el: i,
													isAutoInit: !1
												});
												return !s || (s.on("ready",
													function() {
														i.attr(n,
															"done")
													}), void s.init())
											})
										})
									}),
									gc: I("gc", function() {
										var e = ee.list;
										return !!e.length && (r.each(e, function(e, t) {
											delete t.data, delete t.event, delete t
												.eventIDs, r.each(t.instance,
													function(e) {
														delete t.instance[e]
													}), delete t.instance
										}), ee.list = [], !0)
									})
								},
								ee = {
									list: [],
									push: function push(e) {
										this.list.push(e), this.clear()
									},
									clear: r.T.throttle(function() {
										z.gc()
									}, 3e3)
								};

							function G(e, t) {
								this.name = e, this.ui = t
							}

							function H(e) {
								var t = this;
								t.data = {}, t.event = {}, t.eventIDs = {}, t.instance = e
							}

							function I(e, t) {
								return t.toString = function() {
									return e + " { [native code] }"
								}, t
							}

							function J(e) {
								var t = e.uuid,
									n = F[t],
									i = n.length;
								r.each(n, function(t, i) {
									return i.id == e.id ? (n.splice(t, 1), !1) : void 0
								}), W(t, i)
							}

							function L(e, t) {
								if (!r.isPlainObject(e)) return "";
								if (!r.isArray(t)) return "";
								var n = [],
									i = "";
								return r.each(t, function(t, o) {
									i = e[o], l.test(o) && i instanceof r && (i = i.selector), n
										.push(o + ":" + String(i))
								}), n.join(",")
							}

							function R(e, t, n) {
								if ((f.test(t) || "evt" == t) && n) e.options[t] = S(e, n);
								else if (v.test(t)) {
									var i = t.substring(2);
									e.on(i + "#__id_" + e.id, n), e.options[t] = I(t, function() {
										var t = [].slice.call(arguments);
										t.unshift(i), e.trigger.apply(null, t)
									})
								}
							}

							function S(e, t) {
								return t + e.eventNamespace
							}

							function V(e, t) {
								var i, o = t.attr(w),
									a = null,
									s = t[0].attributes;
								if (o && o.length > 2) try {
									a = n.eval("(" + o + ")")
								} catch (u) {}
								return a || (a = {}), s && s.length && r.each(s, function(t, n) {
									0 == n.name.indexOf(E) && n.name.length > 9 && (i = n.name
										.substring(9).toLocaleLowerCase(), r.each(e,
											function(e) {
												e.toLocaleLowerCase() == i && (a[e] = n
													.value)
											}))
								}), a
							}

							function W(e, t) {
								t = Math.max(t || 0, F[e].length);
								for (var n = 0; t > n; n++) delete z[e][n];
								r.each(F[e], function(t, n) {
									z[e][t] = n
								})
							}

							function _(e, t) {
								r.each(s, function(n, i) {
									t[i] !== o && console.error("SyntaxError: " + e + "." + i +
										"  is a reserved identifier")
								})
							}
							return G.createClass = function(e, t) {
								var n = new G(e, t);
								r.each(["create", "get", "forEach"], function(e, i) {
									t[i] = I(i, function() {
										return n[i].apply(n, arguments)
									})
								}), t.all = F[e]
							}, G.prototype.create = function(e, t, n) {
								var i = this.name,
									o = [],
									a = e.selector;
								return r.each(e, function(e, n) {
									n.selector = a + ":eq(" + e + ")", o.push(B.create(n, i,
										t))
								}), 1 == n ? this : 1 == o.length ? o.pop() : o
							}, G.prototype.get = function(e) {
								var t = this.name,
									n = [];
								return e instanceof r && r.each(e, function(e, i) {
									i = r(i).get(0), r.each(F[t], function(e, t) {
										i == t.el.get(0) && n.push(t)
									})
								}), n.length && r.each(n[0], function(e, t) {
									r.isFunction(t) && !k.test(e) && (n[e] = function() {
										var t = arguments;
										return r.each(n, function() {
											this[e].apply(this, t)
										}), n
									})
								}), n
							}, G.prototype.forEach = function(e) {
								if (r.isFunction(e))
									for (var t = F[this.name], n = t.length - 1; n >= 0; n--) e
										.call(t[n], n, t[n]);
								return this.ui
							}, H.createClass = function(e) {
								var t = new H(e);
								r.each(["on", "one", "off", "trigger", "eventHandler", "delegate"],
									function(n, i) {
										e[i] = I(i, function() {
											return t[i].apply(t, arguments), e
										})
									}), e.cache = I("cache", function() {
									return t.cache.apply(t, arguments)
								});
								var n = r.isFunction(e.unbindEvent) ? e.unbindEvent : d;
								e.unbindEvent = I("unbindEvent", function() {
									return t.unbindEvent.apply(t, arguments), n.apply(e,
										arguments), e
								});
								var i = r.isFunction(e.loadAllEls) ? e.loadAllEls : d;
								e.loadAllEls = I("loadAllEls", function() {
									return t.loadAllEls.apply(t, arguments), i.apply(e,
										arguments), e
								});
								var o = r.isFunction(e.destroy) ? e.destroy : d;
								e.destroy = I("destroy", function() {
									return o.apply(e, arguments), r.T.call(e, e.options
										.onDestroy), t.destroy.apply(t, arguments), e
								})
							}, H.prototype.cache = function(e, t) {
								var n = this;
								if (e) return t === o ? n.data[e] : null !== t ? n.data[e] = t :
									void delete n.data[e]
							}, H.prototype.on = function(e, t) {
								if (e && r.isFunction(t)) {
									if (e = e.toLowerCase(), g.test(e)) {
										var n = e.split("#");
										if (this.eventIDs[e]) return this.off(e, this.eventIDs[e]),
											this.on(e, t), !1;
										this.eventIDs[e] = t, e = n[0]
									}
									this.event[e] = (this.event[e] || []).concat([t])
								}
							}, H.prototype.one = function(e, t) {
								if (e && r.isFunction(t)) {
									var n = this;
									e = e.toLowerCase(), n.on(e, function() {
										return t.apply(this, arguments), n.off(e, arguments
											.callee), j
									})
								}
							}, H.prototype.off = function(e, t) {
								if (e || r.isFunction(t)) {
									var n = this;
									if (e = e.toLowerCase(), g.test(e)) {
										var i = e.split("#");
										if (!n.eventIDs[e]) return !1;
										t = n.eventIDs[e], delete n.eventIDs[e], e = i[0]
									} else r.each(n.eventIDs, function(t) {
										0 == t.indexOf(e + "#") && delete n.eventIDs[t]
									});
									var o = n.event[e] || [];
									if (r.isFunction(t)) {
										for (var a = o.length - 1; a >= 0; a--)
											if (o[a], o[a] == t) {
												o.splice(a, 1);
												break
											}
									} else o = [];
									n.event[e] = o
								}
							}, H.prototype.trigger = function(e, t) {
								if (e) {
									var n = this.instance;
									if (e = e.toLowerCase(), this.event[e]) {
										t = [].slice.call(arguments, 1);
										for (var i = 0; i < this.event[e].length; i++) {
											var o = this.event[e][i];
											r.isFunction(o) && (i -= o.apply(n, t) == j ? 1 : 0)
										}
									}
								}
							}, H.prototype.eventHandler = function(e) {
								var t = this.instance;
								if (!e) return t;
								if (e.el = e.el || t.el, r.each(e, function(n, i) {
										x.test(n) || (e.selector ? e.el.delegate(e.selector, S(
											t, n), i) : e.el.bind(S(t, n), i))
									}), e.hover) {
									var n = e.hover;
									r.isArray(n) ? 1 == n.length && n.push(n[0]) : n = [n, n],
										arguments.callee.call(this, {
											el: e.el,
											selector: e.selector,
											mouseenter: n[0],
											mouseleave: n[1]
										})
								}
								return t
							}, H.prototype.delegate = function(e, t, n) {
								var i = this.instance;
								e instanceof r ? e.bind(t, n) : "string" == typeof e && i.el
									.delegate(e, t, n)
							}, H.prototype.unbindEvent = function() {
								var e = this.instance;
								e.el.unbind(e.eventNamespace), r.each(e.options, function(t, n) {
									l.test(t) && n instanceof r && n.unbind(e
										.eventNamespace)
								}), !r.isEmptyObject(e._) && r.isPlainObject(e._) && r.each(e._,
									function(t, n) {
										l.test(t) && n instanceof r ? n.unbind(e
											.eventNamespace) : p.test(t) ? clearTimeout(n) : h
											.test(t) && clearInterval(n)
									})
							}, H.prototype.loadAllEls = function() {
								var e = this.instance,
									t = e.cache("options"),
									n = null;
								r.each(t, function(t, i) {
									!l.test(t) || i instanceof r || (i ? (e.options[t] = r(
										i, e.el), e.options[t.replace(l, "") +
										"Selector"] = i) : (i = '[data-root="' + t
										.substring(0, t.length - 2) + '"]', (n = r(
											i, e.el)).length && (e.options[t] = n, e
											.options[t.replace(l, "") +
											"Selector"] = i)))
								})
							}, H.prototype.destroy = function() {
								var e = this.instance;
								e.unbindEvent(), e.isAlive = !1, J(e), ee.push(this)
							}, n.JDFUI = z, r(function() {
								z.loadRootUI()
							}), z
						}()), (i = function() {
							return a
						}.apply(t, [])) !== undefined && (e.exports = i), !r.ui && (r.ui = a, n.seajs && r
							.isPlainObject(seajs.data) && r.isArray(seajs.data.preload))) {
						for (var s = seajs.data.preload, c = s.length - 1; c >= 0; c--) - 1 != s[c].indexOf(
							"//misc.360buyimg.com/jdf/1.0.0/ui/ui/1.0.0/ui.js") && s.splice(c, 1);
						seajs.data.preload = s
					}
				}(window, jQuery), seajs.config({
					base: ("https:" == document.location.protocol ? "https://" : "http://") +
						"misc.360buyimg.com/"
				})
		}
	}
]);
